import { applyMiddleware, createStore } from 'redux'
import rootReducer from './reducers'
import thunk from 'redux-thunk'
import { composeWithDevTools } from 'redux-devtools-extension'
import { TypedUseSelectorHook, useSelector } from 'react-redux'

const store = createStore(rootReducer, composeWithDevTools(applyMiddleware(thunk)))
export type AppDispatch = typeof store.dispatch
export type RootState = ReturnType<typeof store.getState>
export default store
export const useAppSelector: TypedUseSelectorHook<RootState> = useSelector